package leetcode.l0528;

/**
 * @author Retain
 * 两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。
 * 计算一个数组中，任意两个数之间汉明距离的总和。
 * @date 2021/5/28 9:16
 */
public class Medium_汉明距离总和_477 {

    /**
     * 暴力求解，2900ms
     * @param nums
     * @return
     */
    public int totalHammingDistance(int[] nums) {
        int sum = 0;
        for (int i = 0; i < nums.length-1; i++) {
            for (int j = i+1; j < nums.length; j++) {
                sum += Integer.bitCount(nums[i] ^ nums[j]);
            }
        }
        return sum;

    }

    /**
     * 逐位求解
     * @param nums
     * @return
     */
    public int totalHammingDistance2(int[] nums) {
        int sum = 0;
        for (int i = 0; i < 30; i++) {
            
            
        }

        return sum;

    }
    
    
}
